package game.model.request;

import common.model.enums.ClassificationTypeEnum;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author 米泽鹏
 * @since 2022-2-28 上午 11:26
 */
@Data
public class SaveClassificationRequest {

	/**
	 * 类型
	 */
	@NotNull(message = "类型不能为空")
	private ClassificationTypeEnum type;

	@Valid
	@NotNull(message = "分类列表不能为空")
	private List<ClassificationInfo> classList;

	@Data
	public static class ClassificationInfo {

		/**
		 * 主键
		 */
		private Long id;

		/**
		 * 父级类别id，0表示顶级类别
		 */
		private Long parentId;

		/**
		 * 类型
		 */
		@NotNull(message = "类型不能为空")
		private ClassificationTypeEnum type;

		/**
		 * 同级类别中的排序
		 */
		@NotNull(message = "排序不能为空")
		private Integer sort;

		/**
		 * 类别名称
		 */
		@NotBlank(message = "类别名称不能为空")
		private String name;

		/**
		 * treeNodeId
		 * el-tree组件每个节点的id，在一棵树中必然存在且是唯一的
		 */
		@NotNull(message = "treeNodeId不能为空")
		private Long treeNodeId;

		/**
		 * 父级节点的treeNodeId
		 */
		@NotNull(message = "parentTreeNodeId不能为空")
		private Long parentTreeNodeId;

	}

}
